As the use of computer software becomes increasingly prevalent among the general population, there is a corresponding need for diagnosing and repairing software-related problems. Typically, the user becomes aware of a problem when an application does not behave as expected. Applications such as Internet browsers, messaging, e-mail and the like oftentimes experience problems for various reasons, such as improper configuration settings, corrupted files, software bugs and viruses, incompatible hardware and the like. To resolve a problem, the user may contact a customer support agent via e-mail, telephone or chat, for instance. The manufacturer of the application may provide this service to its customers pursuant to a sales contract or as a marketing tool. The agent guides the user through different steps which can lead to a diagnosis and resolution of the problem. However, this approach is time-consuming and inconvenient for the user, as well as expensive for the company providing the customer support.
Various software tools for diagnostics and repair have been developed which can be accessed by the user via interface screens. For example, the manufacturer of an application may identify a number of specific software glitches which are expected to occur, and the appropriate repairs for them, e.g., based on testing or user feedback from using the application. The interface screens prompt the user to select a description of the problem so that repair software can perform the appropriate diagnosis and repair. The diagnosis and repair information is typically hard coded into the application and installed on the user's machine when the application is installed. However, for a new application, it can be difficult to predict what types of problems will occur, and to identify appropriate repairs. In this case, in order to address new problems which inevitably occur, it is necessary to provide a software patch which includes the necessary diagnostic and repair software. The user is required to install the software patch on the host machine. This approach is expensive, time consuming and inconvenient as well. For example, the download time experienced by the user can be excessive, especially for users with lower bandwidth connections. Moreover, the installation of the patch may present its own set of problems which require assistance by customer support agents.
A solution is needed for providing diagnosis and repair of software problems in a manner which facilitates updates and which is compatible with multiple applications on a computer host.